package com.cskaoyan.javase._1interface._4example;

import com.cskaoyan.javase._1interface._4example.controller.IGoodsController;
import com.cskaoyan.javase._1interface._4example.controller.impl.IGoodsControllerImpl;
import com.cskaoyan.javase._1interface._4example.model.Goods;

/**
 * 某电商系统后台
 * 前端程序员需要后端程序员，提供接口来完成库存的管理，展示页面。
 * 假如前后端商量好，要求：
 *
 * 1.展示全部商品（goods）页面时，将仅装有商品对象的数组返回，前端不提供任何数据。
 * 2.新增商品时，前端提供商品各种参数，后端需要校验ID唯一性，然后将对象插入数组，返回插入结果。
 *      分析插入的结果:
 *          a.id重复了,插入失败
 *          b.数组没有null的位置了,数组满了,插入失败
 *          c.以上情况都没碰到,插入成功
 *       该方法需要返回三个状态,比如返回一个状态码,规定:
 *           a.id重复了,插入失败 返回1
 *           b.数组没有null的位置了,数组满了,插入失败 返回2
 *           c.以上情况都没碰到,插入成功 返回3
 *
 * 3.删除商品时，前端提供商品ID，后端将该商品删除后，返回删除删除结果。（成功返回true，找不到该ID的商品返回false）
 *
 * 搜索...
 * ....
 *
 * @since 11:36
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Test {
    public static void main(String[] args) {
        // 测试展示商品,要想完成该操作,需要依赖于controller层对象
        IGoodsController igc = new IGoodsControllerImpl();
        Goods[] allRealGoods = igc.getAllRealGoods();
        for (Goods realGoods : allRealGoods) {
            realGoods.printInfo();
        }
        System.out.println("现在开始做插入操作!!");
        switch (igc.insertGoods(7, "联想yoga14", "联想", 7000)) {
            case 1:
                System.out.println("id重复!,插入失败");
                break;
            case 2:
                System.out.println("数组满了,插入失败!");
                break;
            case 3:
                System.out.println("插入成功!");
                allRealGoods = igc.getAllRealGoods();
                for (Goods realGoods : allRealGoods) {
                    realGoods.printInfo();
                }
                break;
        }
    }
}
